# class Solution:
#     def rotate(self, nums: List[int], k: int) -> None:
#         """
#         Do not return anything, modify nums in-place instead.
#         """
#         n=len(nums)
#         k=k%n
#         if n!=1:
#             for i in range(k):
#                 temp=nums[0]
#                 nums[0]=nums[n-1]
#                 for j in range(n-1,1,-1):
#                     nums[j]=nums[j-1]
#                 nums[1]=temp

'''
超时
'''
# class Solution:
#     def rotate(self, nums: List[int], k: int) -> None:
#         """
#         Do not return anything, modify nums in-place instead.
#         """
#         n=len(nums)
#         k=k%n
#         count=0
#         if k!=0:
#             for j in range(k):
#                 i=k+j
#                 val=nums[j]
#                 edge=k+j
#                 while True:
#                     temp=nums[i]
#                     nums[i]=val
#                     val=temp
#                     i=(i+k)%n
#                     count+=1
#                     if i==edge:
#                         break
#                 if count==n:
#                     break

'''
执行用时：
48 ms
, 在所有 Python3 提交中击败了
42.64%
的用户
内存消耗：
15.1 MB
, 在所有 Python3 提交中击败了
12.14%
的用户
'''

class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        n=len(nums)
        k=k%n
        def reverse(start,end):
            for i in range((end-start)//2+1):
                nums[start+i],nums[end-i]=nums[end-i],nums[start+i]
        if k!=0:
            reverse(0,n-1)
            reverse(0,k-1)        
            reverse(k,n-1) 

'''
执行用时：
40 ms
, 在所有 Python3 提交中击败了
79.31%
的用户
内存消耗：
15 MB
, 在所有 Python3 提交中击败了
14.62%
的用户
'''